package com.ihai.spring.boot.sample.distributed.counter.manager;

import com.ihai.spring.boot.sample.distributed.counter.model.ICounter;

/**
 * DESC
 *
 * @author 张驰
 * @date 2019/12/25
 */
public interface CounterManagerMBean {
    /**
     * 通过计数器名称获取计数器
     * @param name
     * @return
     */
    public ICounter getCounter(String name);

    /**
     * 添加计数器（永不超时）
     * @param name
     * @return
     */
    public void addCounter(String name);

    /**
     * 添加计数器
     * @param name
     * @param timeout 单位毫秒（ms）
     * @return
     */
    public void addCounter(String name,long timeout);

    /**
     * 添加计数器
     * @param counter
     * @return
     */
    public void addCounter(ICounter counter);

    /**
     * 同步计数器
     * @param name
     * @param counter
     */
    public void asynFromRemote(String name, ICounter counter);

    /**
     * 删除计数器
     * @param name
     */
    public void removeCounter(String name);
}
